import 'package:get/get.dart';
import 'package:playtruly/common/api/user_api.dart';
import 'package:playtruly/common/models/index.dart';
import 'dart:developer' as developer;

class UserHistoryActiviteController extends GetxController {
  UserHistoryActiviteController();

  // 历史记录列表
  final RxList<HistoryItemData> historyItems = <HistoryItemData>[].obs;
  
  // 加载状态
  final RxBool isLoading = false.obs;
  
  // 错误信息
  final RxString errorMessage = ''.obs;
  
  // 当前选择的日期
  final Rx<DateTime> selectedDate = DateTime.now().obs;
  
  // 用户信息
  int? userId;
  String? userName;

  @override
  void onInit() {
    super.onInit();
    
    // 获取传递的用户信息
    final arguments = Get.arguments as Map<String, dynamic>?;
    if (arguments != null) {
      userId = arguments['userId'];
      userName = arguments['userName'];
      developer.log('📋 历史记录页面初始化，用户ID: $userId, 用户名: $userName');
    }
    
    // 加载历史数据
    _loadHistoryData();
  }

  // 加载历史数据
  void _loadHistoryData() async {
    if (userId == null) {
      errorMessage.value = '用户信息不完整';
      return;
    }

    try {
      isLoading.value = true;
      errorMessage.value = '';
      
      // 格式化选择的日期为 YYYY-MM-DD 格式
      final formattedDate = '${selectedDate.value.year.toString().padLeft(4, '0')}-'
          '${selectedDate.value.month.toString().padLeft(2, '0')}-'
          '${selectedDate.value.day.toString().padLeft(2, '0')}';
      
      developer.log('🔄 开始加载历史数据，日期: $formattedDate');
      
      // 调用API获取历史记录
      final response = await UserApi.getUserHistory(
        userId: userId!,
        date: formattedDate,
        type: 'all',
      );
      
      if (response.isSuccess) {
        developer.log('✅ 历史数据加载成功，共${response.data.length}条记录');
        historyItems.assignAll(response.data);
        
        // 打印前几条记录用于调试
        for (int i = 0; i < response.data.length && i < 3; i++) {
          final item = response.data[i];
          developer.log('  📋 ${item.type}: ${item.title} (${item.publishTime})');
        }
      } else {
        developer.log('❌ 历史数据加载失败: ${response.message}');
        errorMessage.value = response.message ?? '加载失败';
        historyItems.clear();
      }
    } catch (e) {
      developer.log('💥 加载历史数据异常: $e');
      errorMessage.value = '网络错误，请稍后重试';
      historyItems.clear();
    } finally {
      isLoading.value = false;
    }
  }
  
  // 更新选择的日期并重新加载数据
  void updateSelectedDate(DateTime newDate) {
    selectedDate.value = newDate;
    developer.log('📅 更新选择的日期: ${formatDate(newDate)}');
    _loadHistoryData(); // 重新加载数据
  }
  
  // 格式化显示的日期文本
  String get formattedDate {
    return formatDate(selectedDate.value);
  }
  
  // 格式化日期为 YYYY-MM-DD 格式
  String formatDate(DateTime date) {
    return '${date.year.toString().padLeft(4, '0')}-'
        '${date.month.toString().padLeft(2, '0')}-'
        '${date.day.toString().padLeft(2, '0')}';
  }
  
  // 刷新数据
  void refreshData() {
    _loadHistoryData();
  }

  _initData() {
    update(["user_history_activite"]);
  }

  void onTap() {}

  @override
  void onReady() {
    super.onReady();
    _initData();
  }
}
